Adds Gradle build that delegates to existing Ant build#214
Adds Gradle build that delegates to existing Ant build#214NicoPiel wants to merge 8 commits intoOpenIntegrationEngine:mainfrom
Conversation
6a6e3c7 to
ddf0ada
Compare
mgaffigan
left a comment
There was a problem hiding this comment.
Other issues to address
- CI build scripts need updated (.github/workflow/...)
- Readme/Contributor documents need updated
- ant mirth-build build target needs to be updated to block build outside of gradle with migration guidance in error message
| // Pass Gradle properties to Ant | ||
| project.findProperty("disableSigning")?.let { | ||
| ant.properties["disableSigning"] = it.toString() | ||
| } | ||
|
|
||
| project.findProperty("disableTests")?.let { | ||
| ant.properties["disableTests"] = it.toString() | ||
| } |
There was a problem hiding this comment.
Are there other properties we need to be passing?
There was a problem hiding this comment.
Good question. I'm not sure. These are the only two I use and the only two available in mirth-build.xml, afaia.
There was a problem hiding this comment.
I know JUnit supports some properties for running specific tests instead of the whole suite, but I doubt anyone actually uses that. I have in the past, but I would need to look them up to even identify what they are called, because it's not something I do frequently. I wouldn't hold up this PR for that.
There was a problem hiding this comment.
This commit added disableSigning as well as cert and keystore_property_file
4018468 to
6284f3b
Compare
| // Pass Gradle properties to Ant | ||
| project.findProperty("disableSigning")?.let { | ||
| ant.properties["disableSigning"] = it.toString() | ||
| } | ||
|
|
||
| project.findProperty("disableTests")?.let { | ||
| ant.properties["disableTests"] = it.toString() | ||
| } |
There was a problem hiding this comment.
I know JUnit supports some properties for running specific tests instead of the whole suite, but I doubt anyone actually uses that. I have in the past, but I would need to look them up to even identify what they are called, because it's not something I do frequently. I wouldn't hold up this PR for that.
| // Pass Gradle properties to Ant | ||
| project.findProperty("disableSigning")?.let { | ||
| ant.properties["disableSigning"] = it.toString() | ||
| } | ||
|
|
||
| project.findProperty("disableTests")?.let { | ||
| ant.properties["disableTests"] = it.toString() | ||
| } |
There was a problem hiding this comment.
This commit added disableSigning as well as cert and keystore_property_file
There was a problem hiding this comment.
Pull request overview
This PR introduces Gradle build support to enable gradual migration from the existing Ant-based build system. It adds the Gradle wrapper (version 9.2.1), root and subproject build configurations that delegate to Ant, version catalog management, and updates to supporting files like .gitignore and .gitattributes.
Key Changes:
- Adds Gradle wrapper scripts and configuration for reproducible builds without requiring local Gradle installation
- Implements root build configuration that imports the Ant build and provides Ant-to-Gradle interoperability (JUnit taskdefs, property passing)
- Creates stub subproject build files to establish multi-project structure while preserving Ant build delegation
Reviewed changes
Copilot reviewed 12 out of 16 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
settings.gradle.kts |
Configures multi-project structure with 5 subprojects and foojay-resolver plugin |
build.gradle.kts |
Root build that imports Ant, configures JUnit tasks, passes properties, and renames conflicting targets |
gradlew / gradlew.bat |
Gradle wrapper shell and batch scripts for cross-platform execution |
gradle/wrapper/gradle-wrapper.properties |
Wrapper configuration specifying Gradle distribution URL and settings |
gradle/wrapper/gradle-wrapper.jar |
Binary wrapper JAR for bootstrapping Gradle |
gradle.properties |
Gradle build optimization settings (configuration cache, parallel, caching) |
gradle/libs.versions.toml |
Version catalog with Guava dependency declaration |
client/build.gradle.kts |
Stub build file with commented Ant import for client subproject |
command/build.gradle.kts |
Stub build file with commented Ant import for command subproject |
donkey/build.gradle.kts |
Stub build file with commented Ant import for donkey subproject |
generator/build.gradle.kts |
Stub build file with commented Ant import for generator subproject |
server/build.gradle.kts |
Stub build file with commented Ant import for server subproject |
.gitattributes |
Adds line ending normalization for gradlew and binary handling for JARs |
.gitignore |
Adds exclusion for Gradle build output directories |
.sdkmanrc |
Formatting adjustment (no functional change) |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
8fbaf99 to
07c0f26
Compare
Signed-off-by: Nico Piel <nico.piel@hotmail.de>
Signed-off-by: Nico Piel <nico.piel@hotmail.de>
Adds a top-level Gradle build that imports the existing Ant build to enable a gradual migration to Gradle while still using Ant for current tasks. Configures Ant to run JUnit (including ant-junit4) and exposes select Gradle properties to Ant; renames conflicting Ant targets to avoid collisions and makes the Gradle build task delegate to the Ant build target. Also adds placeholder Gradle files for subprojects and bumps the configured Gradle SDK version. Co-authored-by: Mitch Gaffigan <mitch.gaffigan@comcast.net> Signed-off-by: Nico Piel <nico.piel@hotmail.de>
Signed-off-by: Nico Piel <nico.piel@hotmail.de>
Signed-off-by: Nico Piel <nico.piel@hotmail.de>
Changes the root project name to a lowercase value to avoid case-related build/tooling issues (improves compatibility with Gradle/Ant and CI environments). Signed-off-by: Nico Piel <nico.piel@hotmail.de>
Signed-off-by: Nico Piel <nico.piel@hotmail.de>
07c0f26 to
5b3e33d
Compare
Test Results 99 files - 6 194 suites - 8 6m 55s ⏱️ + 1m 4s For more details on these failures and errors, see this check. Results for commit 4b87572. ± Comparison against base commit 0f0d8a4. This pull request removes 24 tests.♻️ This comment has been updated with latest results. |
…uild CI workflow now invokes the Gradle wrapper (./gradlew build) for signed and unsigned builds instead of calling Ant directly. The root Gradle build was extended to set project group/version, provide repositories for subprojects, and pass the coverage and disableTests properties through to the imported Ant build. Added version and archiveEntryDate to gradle.properties and updated the settings docs link. This lets the top-level Gradle build act as a thin wrapper around the existing Ant build, enabling gradual migration to Gradle while keeping CI changes minimal. Signed-off-by: Nico Piel <nico.piel@hotmail.de>
Fixes #52
Test with
./gradlew clean build -PdisableTests=true -PdisableSigning=trueAdds an initial Gradle build system that delegates to the existing Ant build to enable gradual migration and tooling improvements.
Highlights:
Why:
Notes / Next steps: